// pages/stroyDetail/stroyDetail.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
      //控制视频提醒通知
      vidoNotify: false,
      //控制like提醒通知
      likeNotify: false,
      //like的动画效果
      animationClass: '',
      //控制视频显示
      vidoShow: false,
      //控制语音播放
      listenShow: false,
      //提醒通知进入和离开时间
      animationDuration: {
          enter: 300,
          leave: 300
      },
      // 添加一个变量来跟踪播放状态
      isPlaying: false,
      //音频播放器是否显示
      listenPlayshow:false,
      // 添加一个变量来存储音频上下文
      audioContext: null,
      //当前故事详情
      contain: {},
      detail: [{
          "id": 0,
          "like": false,
          "title": '大义灭亲',
          "video": null,
          "detail": '大义灭亲第一阶段：“五四”时期的作品（思想解放热潮）凌叔华《绣枕》、你的心灵手巧，你的精思巧致，你所在意的，你所骄傲的，在那些人看来不过是茶余饭后吹嘘一下的谈资，转身就可以踩在脚底。女性除了生育之外的其它任何价值，在那个时代看来，莫不如是。没嫁人之前，是装扮精致，捧在手心的绣枕，嫁人之后是被踩在脚底、任意摩擦的破棉团。柔石《为奴隶的母亲》、   哎！多少母亲为了她的孩子，甘心为奴为隶。丁玲《莎菲女士的日记》、《我在霞村的时候》、《三八节有感》、《在医院中》；冯沅君《旅行》、解放思想，冲破束缚，自由恋爱是进步的行为，但亲爱的年轻姑娘们，你们所追求的，所为之牺牲的是真挚的爱情，还是冲动的愚痴啊？鲁迅《伤逝》、正如古希腊悲剧，真正的悲剧从来都不是哪一方恶人造成的，幕后的推手是那不可抗拒的命运。谁不想从一而终，谁不想拥有美好的爱情，然而真正的生活中有那么多身不由己，又有那么多无可奈何。人要过好这一生，运气很重要啊。冰心《超人》、大概世界上有些人，是不需要感情，鄙视感情的。此所谓超人。庐隐《蓝田的忏悔录》、《海滨故人》虽然所处的时代背景不一样，但大概每个时代的人的情感都是一样的吧。迷茫、无奈、无聊，对生命意义的思考，读完怅然若失。好像有很多话想说，又说不出来。陈衡哲《络绮思的问题》：家庭与事业该如何权衡，鱼和熊掌都想要，又多么难兼得。络绮思的问题依旧是困扰当代女性的问题。从络绮思的思考中，或许会有你想要的答案。易卜生、《玩偶之家》、娜拉形象；'
      }, {
          "id": 1,
          "like": false,
          "title": '英雄奇遇结金兰',
          "video": null,
          "detail": '英雄奇遇结金兰第一阶段：“五四”时期的作品（思想解放热潮）凌叔华《绣枕》、你的心灵手巧，你的精思巧致，你所在意的，你所骄傲的，在那些人看来不过是茶余饭后吹嘘一下的谈资，转身就可以踩在脚底。女性除了生育之外的其它任何价值，在那个时代看来，莫不如是。没嫁人之前，是装扮精致，捧在手心的绣枕，嫁人之后是被踩在脚底、任意摩擦的破棉团。柔石《为奴隶的母亲》、   哎！多少母亲为了她的孩子，甘心为奴为隶。丁玲《莎菲女士的日记》、《我在霞村的时候》、《三八节有感》、《在医院中》；冯沅君《旅行》、解放思想，冲破束缚，自由恋爱是进步的行为，但亲爱的年轻姑娘们，你们所追求的，所为之牺牲的是真挚的爱情，还是冲动的愚痴啊？鲁迅《伤逝》、正如古希腊悲剧，真正的悲剧从来都不是哪一方恶人造成的，幕后的推手是那不可抗拒的命运。谁不想从一而终，谁不想拥有美好的爱情，然而真正的生活中有那么多身不由己，又有那么多无可奈何。人要过好这一生，运气很重要啊。冰心《超人》、大概世界上有些人，是不需要感情，鄙视感情的。此所谓超人。庐隐《蓝田的忏悔录》、《海滨故人》虽然所处的时代背景不一样，但大概每个时代的人的情感都是一样的吧。迷茫、无奈、无聊，对生命意义的思考，读完怅然若失。好像有很多话想说，又说不出来。陈衡哲《络绮思的问题》：家庭与事业该如何权衡，鱼和熊掌都想要，又多么难兼得。络绮思的问题依旧是困扰当代女性的问题。从络绮思的思考中，或许会有你想要的答案。易卜生、《玩偶之家》、娜拉形象；'
      }, {
          "id": 2,
          "like": true,
          "title": '奇袭',
          "video": 'http://vjs.zencdn.net/v/oceans.mp4',
          "detail": '奇袭第一阶段：“五四”时期的作品（思想解放热潮）凌叔华《绣枕》、你的心灵手巧，你的精思巧致，你所在意的，你所骄傲的，在那些人看来不过是茶余饭后吹嘘一下的谈资，转身就可以踩在脚底。女性除了生育之外的其它任何价值，在那个时代看来，莫不如是。没嫁人之前，是装扮精致，捧在手心的绣枕，嫁人之后是被踩在脚底、任意摩擦的破棉团。柔石《为奴隶的母亲》、   哎！多少母亲为了她的孩子，甘心为奴为隶。丁玲《莎菲女士的日记》、《我在霞村的时候》、《三八节有感》、《在医院中》；冯沅君《旅行》、解放思想，冲破束缚，自由恋爱是进步的行为，但亲爱的年轻姑娘们，你们所追求的，所为之牺牲的是真挚的爱情，还是冲动的愚痴啊？鲁迅《伤逝》、正如古希腊悲剧，真正的悲剧从来都不是哪一方恶人造成的，幕后的推手是那不可抗拒的命运。谁不想从一而终，谁不想拥有美好的爱情，然而真正的生活中有那么多身不由己，又有那么多无可奈何。人要过好这一生，运气很重要啊。冰心《超人》、大概世界上有些人，是不需要感情，鄙视感情的。此所谓超人。庐隐《蓝田的忏悔录》、《海滨故人》虽然所处的时代背景不一样，但大概每个时代的人的情感都是一样的吧。迷茫、无奈、无聊，对生命意义的思考，读完怅然若失。好像有很多话想说，又说不出来。陈衡哲《络绮思的问题》：家庭与事业该如何权衡，鱼和熊掌都想要，又多么难兼得。络绮思的问题依旧是困扰当代女性的问题。从络绮思的思考中，或许会有你想要的答案。易卜生、《玩偶之家》、娜拉形象；'
      }, {
          "id": 3,
          "like": false,
          "title": '诱敌突围',
          "video": null,
          "detail": '诱敌突围第一阶段：“五四”时期的作品（思想解放热潮）凌叔华《绣枕》、你的心灵手巧，你的精思巧致，你所在意的，你所骄傲的，在那些人看来不过是茶余饭后吹嘘一下的谈资，转身就可以踩在脚底。女性除了生育之外的其它任何价值，在那个时代看来，莫不如是。没嫁人之前，是装扮精致，捧在手心的绣枕，嫁人之后是被踩在脚底、任意摩擦的破棉团。柔石《为奴隶的母亲》、   哎！多少母亲为了她的孩子，甘心为奴为隶。丁玲《莎菲女士的日记》、《我在霞村的时候》、《三八节有感》、《在医院中》；冯沅君《旅行》、解放思想，冲破束缚，自由恋爱是进步的行为，但亲爱的年轻姑娘们，你们所追求的，所为之牺牲的是真挚的爱情，还是冲动的愚痴啊？鲁迅《伤逝》、正如古希腊悲剧，真正的悲剧从来都不是哪一方恶人造成的，幕后的推手是那不可抗拒的命运。谁不想从一而终，谁不想拥有美好的爱情，然而真正的生活中有那么多身不由己，又有那么多无可奈何。人要过好这一生，运气很重要啊。冰心《超人》、大概世界上有些人，是不需要感情，鄙视感情的。此所谓超人。庐隐《蓝田的忏悔录》、《海滨故人》虽然所处的时代背景不一样，但大概每个时代的人的情感都是一样的吧。迷茫、无奈、无聊，对生命意义的思考，读完怅然若失。好像有很多话想说，又说不出来。陈衡哲《络绮思的问题》：家庭与事业该如何权衡，鱼和熊掌都想要，又多么难兼得。络绮思的问题依旧是困扰当代女性的问题。从络绮思的思考中，或许会有你想要的答案。易卜生、《玩偶之家》、娜拉形象；'
      }, {
          "id": 4,
          "like": false,
          "title": '临危不惧斗豪绅',
          "video": null,
          "detail": '临危不惧第一阶段：“五四”时期的作品（思想解放热潮）凌叔华《绣枕》、你的心灵手巧，你的精思巧致，你所在意的，你所骄傲的，在那些人看来不过是茶余饭后吹嘘一下的谈资，转身就可以踩在脚底。女性除了生育之外的其它任何价值，在那个时代看来，莫不如是。没嫁人之前，是装扮精致，捧在手心的绣枕，嫁人之后是被踩在脚底、任意摩擦的破棉团。柔石《为奴隶的母亲》、   哎！多少母亲为了她的孩子，甘心为奴为隶。丁玲《莎菲女士的日记》、《我在霞村的时候》、《三八节有感》、《在医院中》；冯沅君《旅行》、解放思想，冲破束缚，自由恋爱是进步的行为，但亲爱的年轻姑娘们，你们所追求的，所为之牺牲的是真挚的爱情，还是冲动的愚痴啊？鲁迅《伤逝》、正如古希腊悲剧，真正的悲剧从来都不是哪一方恶人造成的，幕后的推手是那不可抗拒的命运。谁不想从一而终，谁不想拥有美好的爱情，然而真正的生活中有那么多身不由己，又有那么多无可奈何。人要过好这一生，运气很重要啊。冰心《超人》、大概世界上有些人，是不需要感情，鄙视感情的。此所谓超人。庐隐《蓝田的忏悔录》、《海滨故人》虽然所处的时代背景不一样，但大概每个时代的人的情感都是一样的吧。迷茫、无奈、无聊，对生命意义的思考，读完怅然若失。好像有很多话想说，又说不出来。陈衡哲《络绮思的问题》：家庭与事业该如何权衡，鱼和熊掌都想要，又多么难兼得。络绮思的问题依旧是困扰当代女性的问题。从络绮思的思考中，或许会有你想要的答案。易卜生、《玩偶之家》、娜拉形象；'
      }]
  },

  onLike() {
      let newContain = this.data.contain
      newContain.like = !newContain.like
      this.setData({
          contain: newContain
      })
      console.log(this.data.listenPlayshow)
      // 触发动画
      const animationClass = newContain.like ? 'jump' : '';
      this.setData({
          animationClass: animationClass
      });
      console.log(this.data.contain)
      console.log(this.data.detail)
      // 使用 setTimeout 使得动画类在下次渲染前移除，以便下次点击时再次应用
      setTimeout(() => {
          this.setData({
              animationClass: ''
          });
      }, 300); // 动画时间应与 CSS 中一致
      if (this.data.contain.like) {
          this.setData({
              likeNotify: true
          });
          // 设置 2 秒后将 notify 设置为 false
          setTimeout(() => {
              this.setData({
                  likeNotify: false
              });
          }, 1000);
      } else {
          this.setData({
              likeNotify: false
          });
      }

  },

  onListen() {
      this.setData({
          isPlaying: !this.data.isPlaying,
          listenPlayshow:true
      });
      let isPlaying = this.data.isPlaying;
      console.log("朗读");
      // 引入插件
      const plugin = requirePlugin('WechatSI');

      // 获取当前文章的详细内容
      const longText = this.data.contain.detail;

      // 按逗号和句号分割文本
      const sentences = longText.split(/，|。/);

      // 重新组合句子，尽量让每个片段的长度接近50个字符
      const textSegments = [];
      let currentSegment = '';

      textSegments.push(this.data.contain.title);

      sentences.forEach(sentence => {
          if ((currentSegment + sentence).length <= 50) {
              // 如果当前片段加上新句子的长度不超过50个字符，合并
              currentSegment += sentence + '，';
          } else {
              // 否则，将当前片段加入数组，并开始新的片段
              textSegments.push(currentSegment);
              currentSegment = sentence + '，';
          }
      });

      // 添加最后一个片段
      if (currentSegment) {
          textSegments.push(currentSegment);
      }

      // 播放语音的递归函数
      let currentIndex = 0;

      const playSegment = (index) => {
          if (!isPlaying) {
              this.onListenPause();
          }

          if (index >= textSegments.length) {
              console.log('所有文本播放完成');
              this.setData({
                  isPlaying: false
              });
              return;
          }

          const segment = textSegments[index];
          plugin.textToSpeech({
              lang: 'zh_CN', // 语言类型
              content: segment, // 当前片段文本
              success: (res) => {
                  console.log(`语音合成成功，文件路径：${res.filename}`);
                  // 播放语音
                  const innerAudioContext = wx.createInnerAudioContext();
                  this.setData({
                      audioContext: innerAudioContext // 保存音频上下文
                  });
                  innerAudioContext.src = res.filename;
                  innerAudioContext.play();

                  // 监听播放结束事件
                  innerAudioContext.onEnded(() => {
                      innerAudioContext.destroy(); // 播放完成释放内存
                      if (this.data.isPlaying) { // 检查是否仍在播放
                          playSegment(index + 1);
                      }
                  });

                  // 监听播放错误事件
                  innerAudioContext.onError((err) => {
                      console.error('播放错误：', err);
                      innerAudioContext.destroy();
                      if (this.data.isPlaying) { // 检查是否仍在播放
                          playSegment(index + 1);
                      }
                  });
              },
              fail: (err) => {
                  console.error('语音合成失败：', err);
                  if (this.data.isPlaying) { // 检查是否仍在播放
                      playSegment(index + 1);
                  }
              }
          });
      };

      if (isPlaying) {
          playSegment(0);
      }
  },

  onListenPause() {
      console.log("暂停朗读");
      if (this.data.audioContext) {
          this.data.audioContext.pause();
          this.setData({
              isPlaying: false
          });
      }
  },

  onCloseListen(){
      this.onListenPause();
      this.setData({
          listenPlayshow:false
      })
  },

  onVdio() {
      let video = this.data.contain.video;
      if (video == null) {
          this.setData({
              vidoNotify: true
          });

          // 设置 2 秒后将 notify 设置为 false
          setTimeout(() => {
              this.setData({
                  vidoNotify: false
              });
          }, 2000);
      } else {
          // 这里可以添加播放视频的逻辑
          console.log("播放视频");
          this.setData({
              vidoShow: true
          })
      }
  },
  onCloseVido() {

      this.setData({
          vidoShow: false
      });

      let id = this.data.id
      let newContain = this.data.contain
      let video = this.data.contain.video
      newContain.video = null;

      this.setData({
          contain: newContain
      })

      newContain.video = video;
      // 设置 2 秒后将 notify 设置为 false
      setTimeout(() => {
          this.setData({
              contain: newContain
          });
      }, 2000);


  },

  


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
      console.log(options.id)
      this.setData({
          id: options.id
      })
      const filterDetal = this.data.detail.filter(item => item.id == options.id)
      this.setData({
          contain: filterDetal[0]
      })
      console.log(this.data.contain)
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
      console.log("页面隐藏")
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
      console.log("页面卸载")
      let isPlaying=this.data.isPlaying
      if(isPlaying){
          this.onListenPause();
      }
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
      return {
          title: this.data.contain.title,
          path: "/pages/stroyDetail/stroyDetail?id=" + this.data.id
      }
  },

  /**
   * 分享到朋友圈
   */
  onShareTimeline() {
      return {
          title: this.data.contain.title,
          path: "/pages/stroyDetail/stroyDetail?id=" + this.data.id
      }
  }

})